import pymssql


class MSSQL:
    def __init__(self,host,user,pwd,db): #类的构造函数，初始化数据库连接ip或者域名，以及用户名，密码，要连接的数据库名称
        self.host=host
        self.user=user
        self.pwd=pwd
        self.db=db
    def __GetConnect(self):  #得到数据库连接信息函数， 返回: conn.cursor()
        self.conn=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset='utf8',port=2014)
        cur=self.conn.cursor()  #将数据库连接信息，赋值给cur。
        if not cur:
            raise(NameError,"连接数据库失败")
        else:
            return cur

    #执行查询语句,返回的是一个包含tuple的list，list的元素是记录行，tuple的元素是每行记录的字段
    def ExecQuery(self,sql):  #执行Sql语句函数，返回结果
        cur = self.__GetConnect()   #获得数据库连接信息
        cur.execute(sql)  #执行Sql语句
        resList = cur.fetchall()  #获得所有的查询结果
        #查询完毕后必须关闭连接
        self.conn.close()   #返回查询结果
        return resList
    def ExecNonQuery(self,sql):
        cur = self.__GetConnect()
        cur.execute(sql)
        self.conn.commit()
        self.conn.close()


def reciveData():
    ms = MSSQL(host="127.0.0.1", user="sa", pwd="abc123@", db="master")  # 实例化类对象，连接数据对象
    resOrganizationlist = ms.ExecQuery(
        "SELECT organizationNo,businessTypeNo,organizationName  FROM eduTable2017DB.dbo.schoolBusinessRelation WHERE "
        "regionC='周至县'and businessTypeNo in('111','112','211','212','213','218','311','312','313','314','321','322','341','342','343','344','345')")
    return resOrganizationlist

reciveData();